home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Extra 1996 #3 / AmigaPlus_CD-ROM-EXTRA_Nr.3.bin / aminet-spiele / zwei spieler / tactrix / tactrix!.bas (.txt) < prev    next >
AmigaBASIC Source Code  |  1994-11-29  |  24KB  |  1,135 lines

  1. prelims:
  2. CLEAR,100000,2000
  3. DIM bored(11,11),buttonplate(4000),peesname$(7)
  4. DIM butx1(31),butx2(31),buty1(31),buty2(31)
  5. DIM bwrapnoid(288),bdiaganoid(288),bjerk(288)
  6. DIM bjumpnar(288),bverticon(288),chip(288)
  7. DIM bking(288),bregeneroid(288),blank(288)
  8. DIM rwrapnoid(288),rdiaganoid(288),rjerk(288)
  9. DIM rjumpnar(288),rverticon(288),bhilite(288)
  10. DIM rking(288),rregeneroid(288),rhilite(288)
  11.  
  12. SCREEN 2,640,200,4,2
  13. WINDOW 2,"Tactrix!                                 © 1994 Hard Core Game Design",,28,2
  14. PALETTE 0,0,0,0         :REM black
  15. PALETTE 1,1,1,1         :REM white
  16. PALETTE 2,0.4,0.4,1       :REM Blue
  17. PALETTE 3,1,0.2,0.2       :REM red
  18. PALETTE 4,0.4,0.4,0.4      :REM gray
  19. PALETTE 5,0.33,0.87,0     :REM green
  20. PALETTE 6,0.8,0,0.93      :REM purple
  21. PALETTE 7,0.6,0.6,0.6      :REM light gray
  22. PALETTE 8,0,0.9375,0.8125 :REM cyan
  23.  
  24. start:
  25. t=0:t1=0:x=0:ox=0:y=0:oy=0:legal=0:oops=0
  26. restart=0:mx=0:my=0:a=0:winner=0:didit=0
  27. but1=0:but2=0:pees=0:opees=0:owner=0:pl=0
  28. oowner=0:dx=0:dy=0:buypees=0:cost=0:tutor=0
  29. putpees=0:putowner=0:putx=0:puty=0:cx=0:cy=0
  30.  
  31. peesname$(1)="King"
  32. peesname$(2)="Regeneroid"
  33. peesname$(3)="Diaganoid"
  34. peesname$(4)="Verticon"
  35. peesname$(5)="Wrapnoid"
  36. peesname$(6)="Jumpnar"
  37. peesname$(7)="Jerk"
  38.  
  39. GOSUB definedapeeses
  40. GOSUB definedabuttons
  41.  
  42. drawdabored:
  43. FOR x=19 TO 319 STEP 30
  44.  LINE(x,10)-(x,160),4
  45.  LINE(x+1,10)-(x+1,160),4
  46. NEXT
  47. FOR y=10 TO 160 STEP 15
  48.  LINE(19,y)-(319,y),4
  49. NEXT
  50. LINE(350,150)-(350,177),4
  51. LINE(350,177)-(594,177),4
  52. LINE(594,177)-(594,150),4
  53. LINE(594,150)-(350,150),4
  54.  
  55. initializebored:
  56. bored(1,1)=3:bored(10,1)=3
  57. bored(2,1)=2:bored(9,1)=2
  58. bored(3,1)=4:bored(8,1)=4
  59. bored(4,1)=5:bored(7,1)=5
  60. bored(5,1)=7:bored(6,1)=6
  61.  
  62. bored(1,10)=-3:bored(10,10)=-3
  63. bored(2,10)=-2:bored(9,10)=-2
  64. bored(3,10)=-4:bored(8,10)=-4
  65. bored(4,10)=-5:bored(7,10)=-5
  66. bored(5,10)=-7:bored(6,10)=-6
  67.  
  68. FOR t=1 TO 10
  69.  bored(t,2)=1
  70.  bored(t,9)=-1
  71. NEXT
  72.  
  73. FOR y=3 TO 8
  74.  FOR x=1 TO 10
  75.   bored(x,y)=10
  76.  NEXT
  77. NEXT
  78.  
  79. GOSUB filldabored
  80.  
  81. play:
  82. pl=1:rchips=0:bchips=0
  83. winner=0
  84.  
  85. newturn:
  86. pl=-pl
  87.  
  88. turn1:
  89. ON ERROR GOTO 0
  90. tutor=0
  91. LOCATE 22,7  
  92. COLOR 2
  93. PRINT"Chips :";bchips
  94. LOCATE 22,28
  95. COLOR 3
  96. PRINT"Chips :";rchips
  97. GOSUB cleardabox
  98. COLOR -2*(pl=1)-3*(pl=-1)
  99. LOCATE 20,45
  100. IF pl=1 THEN PRINT"Blue's turn."
  101. IF pl=-1 THEN PRINT"Red's turn."
  102.  
  103. turn2:
  104. didit=0
  105. GOSUB checkmouse
  106. IF but2<>0 THEN GOSUB move:IF didit=0 THEN turn2
  107. IF but1=24 THEN GOSUB buy:IF didit=0 THEN turn1
  108. IF but1=22 THEN GOSUB quit:GOTO turn1
  109. IF but1=30 THEN GOSUB checknew:IF restart=0 THEN turn1
  110. IF but1=31 THEN GOSUB tutor:GOTO turn1
  111. IF but1=21 THEN savegame
  112. IF but1=23 THEN loadgame
  113. IF restart=1 THEN restart=0:GOTO initializebored
  114. IF winner<>0 THEN gameover
  115. IF didit=1 THEN newturn
  116. GOTO turn2
  117.  
  118. savegame:
  119. GOSUB cleardabox
  120. COLOR 1
  121. LOCATE 20,45
  122. PRINT"Click Save again to initiate"
  123. LOCATE 21,45
  124. PRINT"save game sequence."
  125. GOSUB checkmouse
  126. IF but1<>21 THEN turn1
  127. GOSUB cleardabox
  128. LOCATE 20,45
  129. PRINT"Enter device and directory:"
  130. LOCATE 21,45
  131. GOSUB getstring
  132. IF s$="" THEN turn1
  133. d$=s$
  134. GOSUB cleardabox
  135. LOCATE 20,45
  136. PRINT"Enter filename:"
  137. LOCATE 21,45
  138. GOSUB getstring
  139. IF s$="" THEN turn1
  140. GOSUB cleardabox
  141. LOCATE 20,45
  142. PRINT"Saving..."
  143. ON ERROR GOTO fileerror
  144. OPEN d$+s$+".tac" FOR OUTPUT AS 1
  145. PRINT#1,rchips
  146. PRINT#1,bchips
  147. PRINT#1,pl
  148. FOR y=1 TO 10
  149.  FOR x=1 TO 10
  150.   PRINT#1,bored(x,y)
  151.  NEXT
  152. NEXT
  153. CLOSE 1
  154. ON ERROR GOTO 0
  155. GOTO turn1
  156.  
  157. loadgame:
  158. GOSUB cleardabox
  159. COLOR 1
  160. LOCATE 20,45
  161. PRINT"Click Load again to initiate"
  162. LOCATE 21,45
  163. PRINT"load game sequence."
  164. GOSUB checkmouse
  165. IF but1<>23 THEN turn1
  166. GOSUB cleardabox
  167. LOCATE 20,45
  168. PRINT"Enter device and directory:"
  169. LOCATE 21,45
  170. GOSUB getstring
  171. IF s$="" THEN turn1
  172. d$=s$
  173. GOSUB cleardabox
  174. LOCATE 20,45
  175. PRINT"Enter filename:"
  176. LOCATE 21,45
  177. GOSUB getstring
  178. IF s$="" THEN turn1
  179. GOSUB cleardabox
  180. LOCATE 20,45
  181. PRINT"Loading..."
  182. ON ERROR GOTO fileerror
  183. OPEN d$+s$+".tac" FOR INPUT AS 1
  184. INPUT#1,rchips
  185. INPUT#1,bchips
  186. INPUT#1,pl
  187. FOR y=1 TO 10
  188.  FOR x=1 TO 10
  189.   INPUT#1,bored(x,y)
  190.  NEXT
  191. NEXT
  192. CLOSE 1
  193. ON ERROR GOTO 0
  194. GOSUB filldabored
  195. GOTO turn1
  196.  
  197. fileerror:
  198. WINDOW 2
  199. GOSUB cleardabox
  200. LOCATE 20,45
  201. IF ERR=53 THEN
  202.  PRINT"File or directory not found."
  203. ELSEIF ERR=13 THEN
  204.  PRINT"Not a Tactrix! save file."
  205. ELSEIF ERR=55 THEN
  206.  PRINT"File already being used."
  207. ELSEIF ERR=49 THEN
  208.  PRINT"Disk not found."
  209. ELSEIF ERR=74 THEN
  210.  PRINT"Not a mounted volume."
  211. ELSEIF ERR=70 THEN
  212.  PRINT"Disk is write protected."
  213. ELSEIF ERR=61 THEN
  214.  PRINT"Disk is full."
  215. ELSE
  216.  PRINT"error #";ERR
  217. END IF
  218. LOCATE 21,45
  219. PRINT"Click anything to Continue."
  220. GOSUB checkmouse
  221. RESUME turn1
  222.  
  223. buy:
  224. GOSUB cleardabox
  225. oops=0
  226. LOCATE 20,45
  227. PRINT"Select a piece to buy."
  228. LOCATE 21,45
  229. GOSUB checkmouse
  230. IF but1<25 OR but1>29 THEN RETURN
  231. buypees=but1-24:cost=(6-buypees)*3
  232. IF pl=1 THEN
  233.  IF bchips<cost THEN
  234.   GOSUB cleardabox
  235.   LOCATE 20,45  
  236.   PRINT"You can't afford it."
  237.   LOCATE 21,45
  238.   PRINT peesname$(buypees+2);"s cost ";
  239.   PRINT RIGHT$(STR$(cost),LEN(STR$(cost))-1);"."
  240.   oops=1
  241.  END IF
  242. END IF
  243. IF pl=-1 THEN
  244.  IF rchips<cost THEN
  245.   GOSUB cleardabox
  246.   LOCATE 20,45  
  247.   PRINT"You can't afford it."
  248.   LOCATE 21,45
  249.   PRINT peesname$(buypees+2);"s cost ";
  250.   PRINT RIGHT$(STR$(cost),LEN(STR$(cost))-1);"."
  251.   oops=1
  252.  END IF
  253. END IF
  254. IF oops=1 THEN
  255.  LOCATE 22,45
  256.  COLOR 1
  257.  PRINT"Click anything to continue."
  258.  GOSUB checkmouse
  259. END IF
  260.  
  261. IF oops=0 THEN
  262.  GOSUB cleardabox
  263.  LOCATE 20,45
  264.  PRINT"Place piece adjacent"
  265.  LOCATE 21,45
  266.  PRINT"to your regeneroid."
  267.  GOSUB checkmouse
  268.  IF but2=0 THEN oops=1
  269.  IF oops=0 THEN
  270.   x=but1:y=but2-10
  271.   oops=1
  272.   IF bored(x-1,y-1)=6*pl THEN oops=0
  273.   IF bored(x,y-1)=6*pl THEN oops=0
  274.   IF bored(x+1,y-1)=6*pl THEN oops=0
  275.   IF bored(x-1,y)=6*pl THEN oops=0
  276.   IF bored(x+1,y)=6*pl THEN oops=0
  277.   IF bored(x-1,y+1)=6*pl THEN oops=0
  278.   IF bored(x,y+1)=6*pl THEN oops=0
  279.   IF bored(x+1,y+1)=6*pl THEN oops=0
  280.   IF oops=0 THEN
  281.    IF bored(x,y)=10 THEN
  282.     bchips=bchips-1*(pl=1)
  283.     rchips=rchips-1*(pl=-1)
  284.    END IF
  285.    putx=x:puty=y:putpees=6-buypees:putowner=pl
  286.    GOSUB putpees
  287.    didit=1
  288.    bchips=bchips+cost*(pl=1)
  289.    rchips=rchips+cost*(pl=-1)
  290.   END IF
  291.  END IF
  292. END IF
  293. RETURN
  294.  
  295. gameover:
  296. LOCATE 22,7  
  297. COLOR 2
  298. PRINT"Chips :";bchips
  299. LOCATE 22,28
  300. COLOR 3
  301. PRINT"Chips :";rchips
  302. GOSUB cleardabox
  303. COLOR -2*(pl=1)-3*(pl=-1)
  304. LOCATE 20,45
  305. IF pl=1 THEN PRINT"Blue wins!!"
  306. IF pl=-1 THEN PRINT"Red wins!!"
  307. COLOR 1
  308. LOCATE 21,45
  309. PRINT"Click New for a new game."
  310. LOCATE 22,45
  311. PRINT"Click Quit to exit."
  312.  
  313. gameover1:
  314. GOSUB checkmouse
  315. IF but1=22 THEN halt
  316. IF but1=30 THEN
  317.  GOSUB cleardabox
  318.  LOCATE 20,45
  319.  PRINT"Resetting board..."
  320.  restart=1
  321. END IF
  322. IF restart=1 THEN restart=0:GOTO initializebored
  323. GOTO gameover1
  324.  
  325. move:
  326. GOSUB cleardabox
  327. COLOR -2*(pl=1)-3*(pl=-1)
  328. LOCATE 20,45
  329. oops=0
  330. x=but1:y=but2-10
  331. pees=ABS(bored(x,y))
  332. owner=SGN(bored(x,y))
  333. IF owner<>pl AND pees<>0 AND pees<>10 THEN 
  334.  PRINT"Not your piece."
  335.  oops=1
  336. END IF
  337. IF pees=10 THEN PRINT"You can't move a chip.":oops=1
  338. IF pees=0 THEN PRINT"Not a piece.":oops=1
  339. IF oops=1 THEN RETURN
  340. IF pl=1 THEN PUT(-7+x*30,-3+15*y),bhilite
  341. IF pl=-1 THEN PUT(-7+x*30,-3+15*y),rhilite
  342. PRINT "Move where?"
  343. LOCATE 21,45
  344. ox=x:oy=y:opees=pees:oowner=owner
  345. GOSUB checkmouse
  346. IF but2=0 THEN
  347.  IF pl=1 THEN PUT(-7+x*30,-3+15*y),bhilite
  348.  IF pl=-1 THEN PUT(-7+x*30,-3+15*y),rhilite
  349.  PRINT"Cancelling selection."
  350.  oops=1
  351. END IF
  352. IF oops=1 THEN RETURN 
  353. x=but1:y=but2-10
  354. pees=ABS(bored(x,y))
  355. owner=SGN(bored(x,y))
  356.  
  357. GOSUB checklegal
  358. IF legal=0 THEN
  359.  PRINT"Illegal move."
  360.  IF pl=1 THEN PUT(-7+ox*30,-3+15*oy),bhilite
  361.  IF pl=-1 THEN PUT(-7+ox*30,-3+15*oy),rhilite
  362.  oops=1
  363. END IF
  364. IF oops=1 THEN RETURN
  365.  
  366. IF oowner=owner AND pees<>10 THEN
  367.  PRINT "You can't take your own piece."
  368.  IF pl=1 THEN PUT(-7+ox*30,-3+15*oy),bhilite
  369.  IF pl=-1 THEN PUT(-7+ox*30,-3+15*oy),rhilite
  370.  oops=1
  371. END IF
  372. IF oops=1 THEN RETURN
  373.  
  374. didit=1
  375. PUT(-7+ox*30,-3+15*oy),blank,PSET
  376. bored(ox,oy)=0
  377. IF pees=7 THEN winner=-owner
  378. putowner=oowner:putpees=opees
  379. putx=x:puty=y:GOSUB putpees
  380.  
  381. IF opees=1 THEN
  382.  IF oowner=1 AND y=10 THEN
  383.   FOR t=1 TO 20
  384.    PUT(-7+x*30,-3+15*y),bhilite
  385.    FOR t2=1 TO 200:NEXT
  386.   NEXT
  387.   bchips=bchips+25
  388.   PUT(-7+x*30,-3+15*y),blank,PSET
  389.   bored(x,y)=0
  390.   GOSUB cleardabox
  391.   LOCATE 20,45
  392.   PRINT"Cool!  25 Chip bonus!!"
  393.   LOCATE 21,45
  394.   COLOR 1
  395.   PRINT"Click anything to continue."
  396.   GOSUB checkmouse
  397.  END IF
  398.  IF oowner=-1 AND y=1 THEN
  399.   FOR t=1 TO 20
  400.    PUT(-7+x*30,-3+15*y),rhilite
  401.    FOR t2=1 TO 200:NEXT
  402.   NEXT
  403.   rchips=rchips+25
  404.   PUT(-7+x*30,-3+15*y),blank,PSET
  405.   bored(x,y)=0
  406.   GOSUB cleardabox
  407.   LOCATE 20,45
  408.   PRINT"Cool!  25 Chip bonus!!"
  409.   LOCATE 21,45
  410.   COLOR 1
  411.   PRINT"Click anything to continue."
  412.   GOSUB checkmouse
  413.  END IF
  414. END IF
  415.  
  416. IF pees=10 THEN
  417.  bchips=bchips-1*(pl=1)
  418.  rchips=rchips-1*(pl=-1)
  419. END IF
  420. RETURN
  421.  
  422. putpees:
  423. IF putowner=1 THEN
  424.  IF putpees=1 THEN PUT(-7+putx*30,-3+15*puty),bjerk,PSET
  425.  IF putpees=2 THEN PUT(-7+putx*30,-3+15*puty),bjumpnar,PSET
  426.  IF putpees=3 THEN PUT(-7+putx*30,-3+15*puty),bwrapnoid,PSET
  427.  IF putpees=4 THEN PUT(-7+putx*30,-3+15*puty),bverticon,PSET
  428.  IF putpees=5 THEN PUT(-7+putx*30,-3+15*puty),bdiaganoid,PSET
  429.  IF putpees=6 THEN PUT(-7+putx*30,-3+15*puty),bregeneroid,PSET
  430.  IF putpees=7 THEN PUT(-7+putx*30,-3+15*puty),bking,PSET
  431. END IF
  432. IF putowner=-1 THEN
  433.  IF putpees=1 THEN PUT(-7+putx*30,-3+15*puty),rjerk,PSET
  434.  IF putpees=2 THEN PUT(-7+putx*30,-3+15*puty),rjumpnar,PSET
  435.  IF putpees=3 THEN PUT(-7+putx*30,-3+15*puty),rwrapnoid,PSET
  436.  IF putpees=4 THEN PUT(-7+putx*30,-3+15*puty),rverticon,PSET
  437.  IF putpees=5 THEN PUT(-7+putx*30,-3+15*puty),rdiaganoid,PSET
  438.  IF putpees=6 THEN PUT(-7+putx*30,-3+15*puty),rregeneroid,PSET
  439.  IF putpees=7 THEN PUT(-7+putx*30,-3+15*puty),rking,PSET
  440. END IF
  441. bored(putx,puty)=putpees*putowner
  442. RETURN
  443.  
  444. tutor:
  445. tutor=1
  446. oops=0
  447. GOSUB cleardabox
  448. COLOR 8
  449. LOCATE 20,45
  450. PRINT"Select piece."
  451. GOSUB checkmouse
  452. IF but2=0 THEN RETURN
  453. ox=but1:oy=but2-10
  454. opees=ABS(bored(ox,oy)):oowner=SGN(bored(ox,oy))
  455. GOSUB cleardabox
  456. LOCATE 20,45
  457. PRINT"Please wait..."
  458. LOCATE 21,45
  459. PRINT"Finding all legal moves..."
  460. LINE(-8+ox*30,-4+15*oy)-(-8+ox*30,9+15*oy),8
  461. LINE(-9+ox*30,-4+15*oy)-(-9+ox*30,9+15*oy),8
  462. LINE(-8+ox*30,9+15*oy)-(17+ox*30,9+15*oy),8
  463. LINE(17+ox*30,9+15*oy)-(17+ox*30,-4+15*oy),8
  464. LINE(18+ox*30,9+15*oy)-(18+ox*30,-4+15*oy),8
  465. LINE(17+ox*30,-4+15*oy)-(-8+ox*30,-4+15*oy),8
  466. FOR y=1 TO 10
  467.  FOR x=1 TO 10
  468.   IF x<>ox OR y<>oy THEN
  469.    pees=ABS(bored(x,y)):owner=SGN(bored(x,y))
  470.    GOSUB checklegal
  471.    IF legal=1 THEN
  472.     oops=0
  473.     IF oowner=owner AND pees<>10 THEN oops=1
  474.     IF oops=0 THEN
  475.      IF oowner=1 THEN PUT(-7+x*30,-3+15*y),bhilite
  476.      IF oowner=-1 THEN PUT(-7+x*30,-3+15*y),rhilite
  477.     END IF
  478.    END IF
  479.   END IF
  480.  NEXT
  481. NEXT
  482. GOSUB cleardabox
  483. LOCATE 20,45
  484. PRINT peesname$(8-opees);"."
  485. LOCATE 21,45
  486. IF opees<>6 AND opees<>7 THEN PRINT"Cost :";3*opees
  487. IF opees=6 THEN PRINT"Cannot be replaced."
  488. IF opees=7 THEN PRINT"Game Over if lost."
  489. LOCATE 22,45
  490. PRINT"Click anything to continue.";
  491. GOSUB checkmouse
  492. GOSUB cleardabox
  493. LINE(-8+ox*30,-4+15*oy)-(-8+ox*30,9+15*oy),0
  494. LINE(-9+ox*30,-4+15*oy)-(-9+ox*30,9+15*oy),0
  495. LINE(-8+ox*30,9+15*oy)-(17+ox*30,9+15*oy),0
  496. LINE(17+ox*30,9+15*oy)-(17+ox*30,-4+15*oy),0
  497. LINE(18+ox*30,9+15*oy)-(18+ox*30,-4+15*oy),0
  498. LINE(17+ox*30,-4+15*oy)-(-8+ox*30,-4+15*oy),0
  499. LOCATE 20,45
  500. PRINT"Please wait..."
  501. LOCATE 21,45
  502. PRINT"Resetting board..."
  503. GOSUB filldabored
  504. RETURN
  505.  
  506. checklegal:
  507. legal=0
  508. IF opees=1 THEN GOSUB checkjerk
  509. IF opees=2 THEN GOSUB checkjumpnar
  510. IF opees=3 THEN GOSUB checkwrapnoid
  511. IF opees=4 THEN GOSUB checkverticon
  512. IF opees=5 THEN GOSUB checkdiaganoid
  513. IF opees=6 THEN GOSUB checkregeneroid
  514. IF opees=7 THEN GOSUB checkking
  515. RETURN                    
  516.  
  517. checkjerk:
  518. IF ox=x AND y=oy+oowner THEN
  519.  IF pees=10 OR pees=0 THEN legal=1
  520. END IF
  521. IF (ox=x AND(oy=y+2 OR oy=y-2))OR(oy=y AND(ox=x+2 OR ox=x-2)) THEN
  522.  IF pees<>10 AND pees<>0 THEN legal=1
  523. END IF
  524. RETURN
  525.  
  526. checkjumpnar:
  527. dx=ABS(ox-x):dy=ABS(oy-y)
  528. IF (dx=1 AND dy=2)OR(dx=2 AND dy=1) THEN legal=1
  529. RETURN
  530.  
  531. checkwrapnoid:
  532. dx=ABS(ox-x):dy=ABS(oy-y)
  533. oops=0
  534. IF dx=0 AND dy=1 THEN legal=1
  535. IF dx=1 AND dy=1 THEN legal=1
  536. IF dy=0 THEN
  537.  dx=x-ox
  538.  IF dx>5 AND dx<9 THEN
  539.   t=ox
  540.   dx=-1
  541.   t=t+2*dx:IF t<1 THEN t=t+10
  542.   WHILE t<>x
  543.    IF bored(t,y)<>0 AND bored(t,y)<>10 THEN oops=1
  544.    t=t+dx
  545.    IF t<1 THEN t=t+10
  546.   WEND
  547.   IF oops=0 THEN legal=1
  548.  END IF
  549.  IF dx>-9 AND dx<-5 THEN
  550.   t=ox
  551.   dx=1
  552.   t=t+2*dx:IF t>10 THEN t=t-10
  553.   WHILE t<>x
  554.    IF bored(t,y)<>0 AND bored(t,y)<>10 THEN oops=1
  555.    t=t+dx
  556.    IF t>10 THEN t=t-10
  557.   WEND
  558.   IF oops=0 THEN legal=1
  559.  END IF
  560.  IF dx>1 AND dx<5 THEN
  561.   t=ox
  562.   dx=1
  563.   t=t+2*dx
  564.   WHILE t<>x
  565.    IF bored(t,y)<>0 AND bored(t,y)<>10 THEN oops=1
  566.    t=t+dx
  567.   WEND
  568.   IF oops=0 THEN legal=1
  569.  END IF
  570.  IF dx>-5 AND dx<-1 THEN
  571.   t=ox
  572.   dx=-1
  573.   t=t+2*dx:IF t<1 THEN t=t+10
  574.   WHILE t<>x
  575.    IF bored(t,y)<>0 AND bored(t,y)<>10 THEN oops=1
  576.    t=t+dx
  577.   WEND
  578.   IF oops=0 THEN legal=1
  579.  END IF
  580. END IF 
  581. RETURN
  582.  
  583. checkverticon:
  584. dx=ABS(ox-x):dy=ABS(oy-y)
  585. IF dx+dy=0 THEN RETURN
  586. oops=0
  587. IF dx>-1 AND dx<2 AND dy>-1 AND dy<2 THEN
  588.  legal=1
  589. ELSE
  590.  IF x=ox THEN
  591.   t=oy
  592.   dy=SGN(y-oy)
  593.   t=t+dy
  594.   WHILE t<>y
  595.    IF bored(x,t)<>0 AND bored(x,t)<>10 THEN oops=1
  596.    t=t+dy
  597.   WEND
  598.   IF oops=0 THEN legal=1
  599.  END IF
  600. END IF
  601. RETURN
  602.  
  603. checkdiaganoid:
  604. dx=ABS(ox-x):dy=ABS(oy-y)
  605. IF dx+dy=0 THEN RETURN
  606. oops=0
  607. IF dx>-1 AND dx<2 AND dy>-1 AND dy<2 THEN
  608.  legal=1
  609. ELSE
  610.  IF dx<>dy THEN
  611.   oops=1
  612.  ELSE
  613.   dx=SGN(x-ox):dy=SGN(y-oy)
  614.   t=ox:t1=oy
  615.   t=t+dx:t1=t1+dy
  616.    WHILE t<>x
  617.     IF bored(t,t1)<>0 AND bored(t,t1)<>10 THEN oops=1
  618.     t=t+dx:t1=t1+dy
  619.    WEND
  620.   IF oops=0 THEN legal=1
  621.  END IF
  622. END IF
  623. RETURN
  624.  
  625. checkregeneroid:
  626. dx=ABS(ox-x):dy=ABS(oy-y)
  627. IF dx>-1 AND dx<2 AND dy>-1 AND dy<2 AND dx+dy<>0 THEN
  628.  IF oowner=1 AND y<6 THEN legal=1
  629.  IF oowner=-1 AND y>5 THEN legal=1
  630. END IF
  631. RETURN
  632.  
  633. checkking:
  634. dx=ABS(ox-x):dy=ABS(oy-y)
  635. IF dx>-1 AND dx<2 AND dy>-1 AND dy<2 AND dx+dy<>0 THEN legal=1
  636. RETURN
  637.  
  638.  
  639.  
  640. halt:
  641. SCREEN CLOSE 2
  642. END
  643.  
  644. quit:
  645. GOSUB cleardabox
  646. COLOR 1
  647. LOCATE 20,45
  648. PRINT"Click Quit again to exit."
  649. GOSUB checkmouse
  650. IF but1=22 THEN halt
  651. RETURN
  652.  
  653. checknew:
  654. GOSUB cleardabox
  655. COLOR 1
  656. LOCATE 20,45
  657. PRINT"Click New again to restart."
  658. GOSUB checkmouse
  659. IF but1=30 THEN
  660.  restart=1
  661.  LOCATE 21,45
  662.  PRINT"Resetting board..."
  663. END IF
  664. RETURN
  665.  
  666. cleardabox:
  667. LOCATE 20,45
  668. PRINT "                              "
  669. LOCATE 21,45
  670. PRINT "                              "
  671. LOCATE 22,45
  672. PRINT "                              "
  673. RETURN
  674.  
  675. filldabored:
  676. FOR y=1 TO 10
  677.  FOR x=1 TO 10
  678.   pees=ABS(bored(x,y))
  679.   owner=SGN(bored(x,y))
  680.   IF pees=10 THEN PUT(-7+x*30,-3+15*y),chip,PSET
  681.   IF pees=0 THEN PUT(-7+x*30,-3+15*y),blank,PSET
  682.   IF owner=1 THEN
  683.    IF pees=1 THEN PUT(-7+x*30,-3+15*y),bjerk,PSET
  684.    IF pees=2 THEN PUT(-7+x*30,-3+15*y),bjumpnar,PSET
  685.    IF pees=3 THEN PUT(-7+x*30,-3+15*y),bwrapnoid,PSET
  686.    IF pees=4 THEN PUT(-7+x*30,-3+15*y),bverticon,PSET
  687.    IF pees=5 THEN PUT(-7+x*30,-3+15*y),bdiaganoid,PSET
  688.    IF pees=6 THEN PUT(-7+x*30,-3+15*y),bregeneroid,PSET
  689.    IF pees=7 THEN PUT(-7+x*30,-3+15*y),bking,PSET
  690.   END IF
  691.   IF owner=-1 THEN
  692.    IF pees=1 THEN PUT(-7+x*30,-3+15*y),rjerk,PSET
  693.    IF pees=2 THEN PUT(-7+x*30,-3+15*y),rjumpnar,PSET
  694.    IF pees=3 THEN PUT(-7+x*30,-3+15*y),rwrapnoid,PSET
  695.    IF pees=4 THEN PUT(-7+x*30,-3+15*y),rverticon,PSET
  696.    IF pees=5 THEN PUT(-7+x*30,-3+15*y),rdiaganoid,PSET
  697.    IF pees=6 THEN PUT(-7+x*30,-3+15*y),rregeneroid,PSET
  698.    IF pees=7 THEN PUT(-7+x*30,-3+15*y),rking,PSET
  699.   END IF
  700.  NEXT
  701. NEXT
  702. RETURN
  703.  
  704. definedapeeses:
  705. CLS
  706. GET (0,0)-(23,11),blank
  707. LINE(0,0)-(0,11),2
  708. LINE(0,11)-(23,11),2
  709. LINE(23,11)-(23,0),2
  710. LINE(23,0)-(0,0),2
  711. PAINT(10,10),2
  712. GET (0,0)-(23,11),bhilite
  713. LINE(0,0)-(0,11),3
  714. LINE(0,11)-(23,11),3
  715. LINE(23,11)-(23,0),3
  716. LINE(23,0)-(0,0),3
  717. PAINT(10,10),3
  718. GET (0,0)-(23,11),rhilite
  719. FOR y=0 TO 11:FOR x=0 TO 23 STEP 2
  720.  READ a
  721.  PSET(x,y),a*2:PSET(x+1,y),a*2
  722. NEXT x,y
  723. GET (0,0)-(23,11),bjerk
  724. FOR y=0 TO 11:FOR x=0 TO 23 STEP 2
  725.  READ a
  726.  PSET(x,y),a*2:PSET(x+1,y),a*2
  727. NEXT x,y
  728. GET (0,0)-(23,11),bjumpnar
  729. FOR y=0 TO 11:FOR x=0 TO 23 STEP 2
  730.  READ a
  731.  PSET(x,y),a*2:PSET(x+1,y),a*2
  732. NEXT x,y
  733. GET (0,0)-(23,11),bwrapnoid
  734. FOR y=0 TO 11:FOR x=0 TO 23 STEP 2
  735.  READ a
  736.  PSET(x,y),a*2:PSET(x+1,y),a*2
  737. NEXT x,y
  738. GET (0,0)-(23,11),bverticon
  739. FOR y=0 TO 11:FOR x=0 TO 23 STEP 2
  740.  READ a
  741.  PSET(x,y),a*2:PSET(x+1,y),a*2
  742. NEXT x,y
  743. GET (0,0)-(23,11),bdiaganoid
  744. FOR y=0 TO 11:FOR x=0 TO 23 STEP 2
  745.  READ a
  746.  PSET(x,y),a*2:PSET(x+1,y),a*2
  747. NEXT x,y
  748. GET (0,0)-(23,11),bking
  749. FOR y=0 TO 11:FOR x=0 TO 23 STEP 2
  750.  READ a
  751.  PSET(x,y),a*2:PSET(x+1,y),a*2
  752. NEXT x,y
  753. GET (0,0)-(23,11),bregeneroid
  754. FOR y=0 TO 11:FOR x=0 TO 23 STEP 2
  755.  READ a
  756.  PSET(x,y),a:PSET(x+1,y),a
  757. NEXT x,y
  758. GET (0,0)-(23,11),chip
  759.  
  760. RESTORE
  761.  
  762. FOR y=0 TO 11:FOR x=0 TO 23 STEP 2
  763.  READ a
  764.  PSET(x,y),a*3:PSET(x+1,y),a*3
  765. NEXT x,y
  766. GET (0,0)-(23,11),rjerk
  767. FOR y=0 TO 11:FOR x=0 TO 23 STEP 2
  768.  READ a
  769.  PSET(x,y),a*3:PSET(x+1,y),a*3
  770. NEXT x,y
  771. GET (0,0)-(23,11),rjumpnar
  772. FOR y=0 TO 11:FOR x=0 TO 23 STEP 2
  773.  READ a
  774.  PSET(x,y),a*3:PSET(x+1,y),a*3
  775. NEXT x,y
  776. GET (0,0)-(23,11),rwrapnoid
  777. FOR y=0 TO 11:FOR x=0 TO 23 STEP 2
  778.  READ a
  779.  PSET(x,y),a*3:PSET(x+1,y),a*3
  780. NEXT x,y
  781. GET (0,0)-(23,11),rverticon
  782. FOR y=0 TO 11:FOR x=0 TO 23 STEP 2
  783.  READ a
  784.  PSET(x,y),a*3:PSET(x+1,y),a*3
  785. NEXT x,y
  786. GET (0,0)-(23,11),rdiaganoid
  787. FOR y=0 TO 11:FOR x=0 TO 23 STEP 2
  788.  READ a
  789.  PSET(x,y),a*3:PSET(x+1,y),a*3
  790. NEXT x,y
  791. GET (0,0)-(23,11),rking
  792. FOR y=0 TO 11:FOR x=0 TO 23 STEP 2
  793.  READ a
  794.  PSET(x,y),a*3:PSET(x+1,y),a*3
  795. NEXT x,y
  796. GET (0,0)-(23,11),rregeneroid
  797. CLS
  798. RETURN 
  799.  
  800. definedabuttons:
  801. t=0
  802. FOR x=20 TO 320 STEP 30
  803.  t=t+1
  804.  butx1(t)=x+2:butx2(t)=x+28
  805.  buty1(t)=11:buty2(t)=159
  806. NEXT
  807. t=t-1
  808. FOR y=10 TO 145 STEP 15
  809.  t=t+1
  810.  butx1(t)=21:butx2(t)=318
  811.  buty1(t)=y+1:buty2(t)=y+14
  812. NEXT
  813.  
  814. LINE(0,0)-(14,0),5
  815. LINE(14,0)-(14,15),5
  816. LINE(14,15)-(0,15),5
  817. LINE(0,15)-(0,0),5
  818. PAINT(10,10),5
  819. GET (0,0)-(14,15),buttonplate
  820. LOCATE 5,65
  821. COLOR 5
  822. PRINT"Save"
  823. PUT(65*8-23,5*8-12),buttonplate
  824. PUT(65*8-8,5*8-12),buttonplate
  825. PUT(65*8+7,5*8-12),buttonplate
  826. PUT(65*8+22,5*8-12),buttonplate
  827. t=21
  828. butx1(t)=65*8-23:butx2(t)=65*8+37
  829. buty1(t)=5*8-12:buty2(t)=5*8+3
  830.  
  831. LINE(0,0)-(14,0),3
  832. LINE(14,0)-(14,15),3
  833. LINE(14,15)-(0,15),3
  834. LINE(0,15)-(0,0),3
  835. PAINT(10,10),3
  836. GET (0,0)-(14,15),buttonplate
  837. LOCATE 11,65
  838. COLOR 3
  839. PRINT"Quit"
  840. PUT(65*8-23,11*8-12),buttonplate
  841. PUT(65*8-8,11*8-12),buttonplate
  842. PUT(65*8+7,11*8-12),buttonplate
  843. PUT(65*8+22,11*8-12),buttonplate
  844. t=22
  845. butx1(t)=65*8-23:butx2(t)=65*8+37
  846. buty1(t)=11*8-12:buty2(t)=11*8+3
  847.  
  848. LINE(0,0)-(14,0),2
  849. LINE(14,0)-(14,15),2
  850. LINE(14,15)-(0,15),2
  851. LINE(0,15)-(0,0),2
  852. PAINT(10,10),2
  853. GET (0,0)-(14,15),buttonplate
  854. LOCATE 2,65
  855. COLOR 2
  856. PRINT"Load"
  857. PUT(65*8-23,2*8-12),buttonplate
  858. PUT(65*8-8,2*8-12),buttonplate
  859. PUT(65*8+7,2*8-12),buttonplate
  860. PUT(65*8+22,2*8-12),buttonplate
  861. t=23
  862. butx1(t)=65*8-23:butx2(t)=65*8+37
  863. buty1(t)=2*8-12:buty2(t)=2*8+3
  864.  
  865. LINE(0,0)-(14,0),8
  866. LINE(14,0)-(14,15),8
  867. LINE(14,15)-(0,15),8
  868. LINE(0,15)-(0,0),8
  869. PAINT(10,10),8
  870. GET (0,0)-(14,15),buttonplate
  871. LOCATE 2,50
  872. COLOR 8
  873. PRINT"Buy"
  874. SCROLL (377,2*8-12)-(437,2*8+3),4,0
  875. PUT(50*8-23,2*8-12),buttonplate
  876. PUT(50*8-8,2*8-12),buttonplate
  877. PUT(50*8+7,2*8-12),buttonplate
  878. PUT(50*8+22,2*8-12),buttonplate
  879. t=24
  880. butx1(t)=50*8-23:butx2(t)=50*8+37
  881. buty1(t)=2*8-12:buty2(t)=2*8+3
  882.  
  883. LOCATE 17,64
  884. PRINT"Tutor"
  885. SCROLL (65*8-23,17*8-12)-(65*8+37,17*8+3),4,0
  886. PUT(65*8-23,17*8-12),buttonplate
  887. PUT(65*8-8,17*8-12),buttonplate
  888. PUT(65*8+7,17*8-12),buttonplate
  889. PUT(65*8+22,17*8-12),buttonplate
  890. t=31
  891. butx1(t)=65*8-23:butx2(t)=65*8+37
  892. buty1(t)=17*8-12:buty2(t)=17*8+3
  893.  
  894. LINE(0,0)-(14,0),6
  895. LINE(14,0)-(14,15),6
  896. LINE(14,15)-(0,15),6
  897. LINE(0,15)-(0,0),6
  898. PAINT(10,10),6
  899. GET (0,0)-(14,15),buttonplate
  900. LOCATE 8,65
  901. COLOR 6
  902. PRINT"New"
  903. SCROLL (65*8-23,8*8-12)-(65*8+37,8*8+3),4,0
  904. PUT(65*8-23,8*8-12),buttonplate
  905. PUT(65*8-8,8*8-12),buttonplate
  906. PUT(65*8+7,8*8-12),buttonplate
  907. PUT(65*8+22,8*8-12),buttonplate
  908. t=30
  909. butx1(t)=65*8-23:butx2(t)=65*8+37
  910. buty1(t)=8*8-12:buty2(t)=8*8+3
  911.  
  912. peesbuttons:
  913. LINE(0,0)-(14,0),7
  914. LINE(14,0)-(14,15),7
  915. LINE(14,15)-(0,15),7
  916. LINE(0,15)-(0,0),7
  917. PAINT(10,10),7
  918. GET (0,0)-(14,15),buttonplate
  919. LOCATE 5,47
  920. COLOR 7
  921. PRINT"Diaganoid"
  922. SCROLL(50*8-38,5*8-12)-(50*8+52,5*8+3),4,0
  923. PUT(50*8-38,5*8-12),buttonplate
  924. PUT(50*8-23,5*8-12),buttonplate
  925. PUT(50*8-8,5*8-12),buttonplate
  926. PUT(50*8+7,5*8-12),buttonplate
  927. PUT(50*8+22,5*8-12),buttonplate
  928. PUT(50*8+37,5*8-12),buttonplate
  929. t=25
  930. butx1(t)=50*8-38:butx2(t)=50*8+51
  931. buty1(t)=5*8-12:buty2(t)=5*8+3
  932.  
  933. LOCATE 8,48
  934. PRINT"Verticon"
  935. PUT(50*8-38,8*8-12),buttonplate
  936. PUT(50*8-23,8*8-12),buttonplate
  937. PUT(50*8-8,8*8-12),buttonplate
  938. PUT(50*8+7,8*8-12),buttonplate
  939. PUT(50*8+22,8*8-12),buttonplate
  940. PUT(50*8+37,8*8-12),buttonplate
  941. t=26
  942. butx1(t)=50*8-38:butx2(t)=50*8+51
  943. buty1(t)=8*8-12:buty2(t)=8*8+3
  944.  
  945. LOCATE 11,48
  946. PRINT"Wrapnoid"
  947. PUT(50*8-38,11*8-12),buttonplate
  948. PUT(50*8-23,11*8-12),buttonplate
  949. PUT(50*8-8,11*8-12),buttonplate
  950. PUT(50*8+7,11*8-12),buttonplate
  951. PUT(50*8+22,11*8-12),buttonplate
  952. PUT(50*8+37,11*8-12),buttonplate
  953. t=27
  954. butx1(t)=50*8-38:butx2(t)=50*8+51
  955. buty1(t)=11*8-12:buty2(t)=11*8+3
  956.  
  957. LOCATE 14,48
  958. PRINT"Jumpnar"
  959. SCROLL(50*8-38,14*8-12)-(50*8+52,14*8+3),4,0
  960. PUT(50*8-38,14*8-12),buttonplate
  961. PUT(50*8-23,14*8-12),buttonplate
  962. PUT(50*8-8,14*8-12),buttonplate
  963. PUT(50*8+7,14*8-12),buttonplate
  964. PUT(50*8+22,14*8-12),buttonplate
  965. PUT(50*8+37,14*8-12),buttonplate
  966. t=28
  967. butx1(t)=50*8-38:butx2(t)=50*8+51
  968. buty1(t)=14*8-12:buty2(t)=14*8+3
  969.  
  970. LOCATE 17,50
  971. PRINT"Jerk"
  972. PUT(50*8-38,17*8-12),buttonplate
  973. PUT(50*8-23,17*8-12),buttonplate
  974. PUT(50*8-8,17*8-12),buttonplate
  975. PUT(50*8+7,17*8-12),buttonplate
  976. PUT(50*8+22,17*8-12),buttonplate
  977. PUT(50*8+37,17*8-12),buttonplate
  978. t=29
  979. butx1(t)=50*8-38:butx2(t)=50*8+51
  980. buty1(t)=17*8-12:buty2(t)=17*8+3
  981.  
  982. PUT(0,0),buttonplate
  983. ERASE buttonplate
  984. RETURN
  985.  
  986. loop:
  987. GOTO loop
  988.  
  989. getstring:
  990. GOSUB holdit
  991. s$=""
  992. PRINT"<";
  993. cx=POS(0)-1
  994. cy=CSRLIN
  995. gs1:
  996. a$=INKEY$:IF a$=""THEN gs1
  997. IF ASC(a$)=13 THEN PRINT:RETURN
  998. IF ASC(a$)=8 AND s$<>""THEN s$=LEFT$(s$,LEN(s$)-1):GOTO gs2
  999. IF ASC(a$)=8 THEN gs1
  1000. IF LEN(s$)=28 THEN BEEP:GOTO gs1
  1001. s$=s$+a$
  1002. gs2:
  1003. LOCATE cy,cx:PRINT s$"< ";
  1004. GOTO gs1
  1005.  
  1006. holdit:
  1007. FOR t=1 TO 500:a$=INKEY$:NEXT:a$="":RETURN
  1008.  
  1009. checkmouse:
  1010. IF MOUSE(0)>-1 THEN checkmouse
  1011. WHILE MOUSE(0)<0
  1012. WEND
  1013. mx=MOUSE(1):my=MOUSE(2)
  1014. GOSUB whichbut
  1015. RETURN
  1016.  
  1017. whichbut:
  1018. but1=0:but2=0
  1019. FOR t=0 TO 31
  1020.  IF mx>=butx1(t) AND mx<=butx2(t) THEN
  1021.   IF my>=buty1(t) AND my<=buty2(t) THEN
  1022.    IF but1<>0 THEN but2=t
  1023.    IF but1=0 THEN but1=t
  1024.   END IF
  1025.  END IF
  1026. NEXT
  1027. RETURN
  1028.  
  1029. peesdata:
  1030. jerk:
  1031. DATA 0,0,0,0,0,0,0,0,0,0,0,0
  1032. DATA 0,0,0,0,0,0,0,0,0,0,0,0
  1033. DATA 0,0,0,0,0,0,0,0,0,0,0,0
  1034. DATA 0,0,0,0,0,0,0,0,0,0,0,0
  1035. DATA 0,0,0,0,0,1,1,0,0,0,0,0
  1036. DATA 0,0,0,0,1,1,1,1,0,0,0,0
  1037. DATA 0,0,0,0,1,1,1,1,0,0,0,0
  1038. DATA 0,0,0,0,0,1,1,0,0,0,0,0
  1039. DATA 0,0,0,0,0,0,0,0,0,0,0,0
  1040. DATA 0,0,0,0,0,0,0,0,0,0,0,0
  1041. DATA 0,0,0,0,0,0,0,0,0,0,0,0
  1042. DATA 0,0,0,0,0,0,0,0,0,0,0,0
  1043. jumpnar:
  1044. DATA 0,0,0,1,1,0,0,1,1,0,0,0
  1045. DATA 0,0,0,1,1,0,0,1,1,0,0,0
  1046. DATA 0,0,0,0,0,0,0,0,0,0,0,0
  1047. DATA 1,1,0,0,0,0,0,0,0,0,1,1
  1048. DATA 1,1,0,0,0,1,1,0,0,0,1,1
  1049. DATA 0,0,0,0,1,1,1,1,0,0,0,0
  1050. DATA 0,0,0,0,1,1,1,1,0,0,0,0
  1051. DATA 1,1,0,0,0,1,1,0,0,0,1,1
  1052. DATA 1,1,0,0,0,0,0,0,0,0,1,1
  1053. DATA 0,0,0,0,0,0,0,0,0,0,0,0
  1054. DATA 0,0,0,1,1,0,0,1,1,0,0,0
  1055. DATA 0,0,0,1,1,0,0,1,1,0,0,0
  1056. wrapnoid:
  1057. DATA 0,0,0,0,0,0,0,0,0,0,0,0
  1058. DATA 0,0,0,0,0,0,0,0,0,0,0,0
  1059. DATA 0,0,1,0,0,0,0,0,0,1,0,0
  1060. DATA 0,1,0,0,0,0,0,0,0,0,1,0
  1061. DATA 1,0,0,0,0,1,1,0,0,0,0,1
  1062. DATA 1,0,0,0,1,1,1,1,0,0,0,1
  1063. DATA 1,0,0,0,1,1,1,1,0,0,0,1
  1064. DATA 1,0,0,0,0,1,1,0,0,0,0,1
  1065. DATA 0,1,0,0,0,0,0,0,0,0,1,0
  1066. DATA 0,0,1,0,0,0,0,0,0,1,0,0
  1067. DATA 0,0,0,0,0,0,0,0,0,0,0,0
  1068. DATA 0,0,0,0,0,0,0,0,0,0,0,0
  1069. verticon:
  1070. DATA 0,0,0,0,0,1,1,0,0,0,0,0
  1071. DATA 0,0,0,0,0,1,1,0,0,0,0,0
  1072. DATA 0,0,0,0,0,1,1,0,0,0,0,0
  1073. DATA 0,0,0,0,0,1,1,0,0,0,0,0
  1074. DATA 0,0,0,0,1,1,1,1,0,0,0,0
  1075. DATA 0,0,0,1,1,1,1,1,1,0,0,0
  1076. DATA 0,0,0,1,1,1,1,1,1,0,0,0
  1077. DATA 0,0,0,0,1,1,1,1,0,0,0,0
  1078. DATA 0,0,0,0,0,1,1,0,0,0,0,0
  1079. DATA 0,0,0,0,0,1,1,0,0,0,0,0
  1080. DATA 0,0,0,0,0,1,1,0,0,0,0,0
  1081. DATA 0,0,0,0,0,1,1,0,0,0,0,0
  1082. diaganoid:
  1083. DATA 1,1,0,0,0,0,0,0,0,0,1,1
  1084. DATA 1,1,1,0,0,0,0,0,0,1,1,1
  1085. DATA 0,1,1,1,0,0,0,0,1,1,1,0
  1086. DATA 0,0,1,1,1,0,0,1,1,1,0,0
  1087. DATA 0,0,0,1,1,1,1,1,1,0,0,0
  1088. DATA 0,0,0,0,1,1,1,1,0,0,0,0
  1089. DATA 0,0,0,0,1,1,1,1,0,0,0,0
  1090. DATA 0,0,0,1,1,1,1,1,1,0,0,0
  1091. DATA 0,0,1,1,1,0,0,1,1,1,0,0
  1092. DATA 0,1,1,1,0,0,0,0,1,1,1,0
  1093. DATA 1,1,1,0,0,0,0,0,0,1,1,1
  1094. DATA 1,1,0,0,0,0,0,0,0,0,1,1
  1095. king:
  1096. DATA 0,0,0,0,0,0,0,0,0,0,0,0
  1097. DATA 0,0,0,1,0,0,0,0,1,0,0,0
  1098. DATA 1,0,0,1,0,0,0,0,1,0,0,1
  1099. DATA 0,1,0,0,1,0,0,1,0,0,1,0
  1100. DATA 0,1,0,0,1,0,0,1,0,0,1,0
  1101. DATA 0,1,0,0,1,1,1,1,0,0,1,0
  1102. DATA 0,1,1,1,0,0,0,0,1,1,1,0
  1103. DATA 1,0,0,0,0,0,0,0,0,0,0,1
  1104. DATA 1,0,0,0,0,0,0,0,0,0,0,1
  1105. DATA 0,1,1,0,0,0,0,0,0,1,1,0
  1106. DATA 0,0,0,1,1,1,1,1,1,0,0,0
  1107. DATA 0,0,0,0,0,0,0,0,0,0,0,0
  1108. regeneroid:
  1109. DATA 0,0,0,1,1,1,1,1,1,0,0,0
  1110. DATA 0,0,1,0,0,0,0,0,0,1,0,0
  1111. DATA 0,1,0,0,1,1,1,1,0,0,1,0
  1112. DATA 1,0,0,1,0,0,0,0,1,0,0,1
  1113. DATA 1,0,1,0,0,1,1,0,0,1,0,1
  1114. DATA 1,0,1,0,1,0,0,1,0,1,0,1
  1115. DATA 1,0,1,0,1,0,0,1,0,1,0,1
  1116. DATA 1,0,1,0,0,1,1,0,0,1,0,1
  1117. DATA 1,0,0,1,0,0,0,0,1,0,0,1
  1118. DATA 0,1,0,0,1,1,1,1,0,0,1,0
  1119. DATA 0,0,1,0,0,0,0,0,0,1,0,0
  1120. DATA 0,0,0,1,1,1,1,1,1,0,0,0
  1121. chip:
  1122. DATA 0,0,0,0,0,0,0,0,0,0,0,0
  1123. DATA 0,0,0,0,0,0,0,0,0,0,0,0
  1124. DATA 0,0,0,0,0,0,0,0,0,0,0,0
  1125. DATA 0,0,0,0,0,0,0,0,0,0,0,0
  1126. DATA 0,0,0,0,0,0,0,0,0,0,0,0
  1127. DATA 0,0,0,0,0,1,1,0,0,0,0,0
  1128. DATA 0,0,0,0,0,1,1,0,0,0,0,0
  1129. DATA 0,0,0,0,0,0,0,0,0,0,0,0
  1130. DATA 0,0,0,0,0,0,0,0,0,0,0,0
  1131. DATA 0,0,0,0,0,0,0,0,0,0,0,0
  1132. DATA 0,0,0,0,0,0,0,0,0,0,0,0
  1133. DATA 0,0,0,0,0,0,0,0,0,0,0,0
  1134.  
  1135.